package org.ccay.core.request;

import java.io.Serializable;

/**
 * 应用程序凭证，含应用名、权限Scope、当前环境等信息
 * @author chaowangbang
 * @since 2011-8-26
 */
public interface IApplicationPrincipal extends Serializable {
	
	/**
	 * 开发环境
	 */
	public static final String DEV = "dev";
	
	/**
	 * SIT 环境
	 */
	public static final String SIT = "sit";
	/**
	 * UAT 环境
	 */
	public static final String UAT = "uat";
	/**
	 * 生产环境
	 */
	public static final String PRODUCTION = "production";
	
	/**
	 * 获得日志表格名称	
	 * @author chaowangbang
	 * @since 2013-6-7
	 * @return
	 */
	int getLogsTableIndex();
	/**
	 * 获取应用名
	 * @return
	 */
	String getAppName();	
	/**
	 * 获取权限的Scope
	 * @return
	 */
	String getScope();
	/**
	 * 获取当前的环境
	 * @return
	 */
	String getEnviorment();
	
	/** 
	 * 应用上下文根，包含最后的/
	 * @author chaowangbang
	 * @since 2012-3-29
	 * @return
	 */
	String getContextPath();
	
	/** 
	 * 获取当前网络环境 internet/intranet
	 * @author chaowangbang
	 * @since 2012-6-29
	 * @return
	 */
	String getNetwork();
	
	/**
	 * 获取数据库类型[oracle,mysql]	
	 * @author chaowangbang
	 * @since 2016年2月25日
	 * @return
	 */
	String getDbType();
		
	/**
	 * 获取服务版本
	 * @author chaowangbang
	 * @since 2016年03月10日
	 * @return
	 */
	String getServiceVersion();
	
	
	
}
